#ifndef DATA_VECTOR_H
#define DATA_VECTOR_H

#include "basicheader.h"

template<typename Elem>
class DataVector
{
public:
	DataVector() {}
	DataVector(const DataVector& obj) 
	{ 
		m_tData.clear(); m_tData = obj.m_tData;
	}
	DataVector& operator=(const DataVector& obj) 
	{ 
		m_tData = obj.m_tData;
		return *this;
	}
	~DataVector() {}

public:
	inline const Elem& operator[](int index) const { return m_tData[index]; }
	inline Elem& operator[](int index) { return m_tData[index]; }
	
public:
	inline int size() const { return m_tData.size(); }
	inline void resize(int size) { m_tData.resize(size); }

protected:

private:
	std::vector<Elem> m_tData;
};

typedef DataVector<double> DataPoint;

#endif